#!/bin/bash

#
# Nombre:      start.sh
# Autor:       Pablo Martin Viva <pmviva@gmail.com>
# Fecha:       19/04/2011
# Descripcion: Provee la funcionalidad de iniciar comandos
#              <<inteligentemente>> verificando si el programa ya se
#              encuentra en ejecucion y en caso contraro iniciarlo.
#

#
# Modo de uso:
#
# ./start.sh <<COMANDO>>
#
# Donde <<COMANDO>> es el nombre del comando a iniciar por el script start.sh

#
# Verifico que recibo al menos 1 parametro obligatorio:
# 1) COMANDO
#
if [ $# -lt 1 ]
then
	. gralog.sh "START" "Error#1: Cantidad de parametros invalida" "F"
	exit 1
fi

#
# Obtengo parametro comando
#
comandoEjecutar=$1

#
# Obtiene el comando pgrep a usar
#
comandoPgrep=`which pgrep`

#
# Verifica si el comando pgrep existe en el PATH en caso contrario aborta
#
if [ ! -f $comandoPgrep ]
then
 	. gralog.sh "START" "Error#2: El comando pgrep no se encuentra en el PATH de ejecucion" "F"
	exit 2
fi

#
# Obtiene el PID del comando a iniciar
#
pid=`$comandoPgrep $comandoEjecutar`

#
# Verifica si el comando a iniciar ya se encuentra en ejecucion
# Caso contrario lo invoca
#
if [ -z $pid ]
then
	. gralog.sh "START" "Iniciando comando $comandoEjecutar" "I"
	. $comandoEjecutar
else
	. gralog.sh "START" "Programa $comandoEjecutar ya ha sido iniciado con process id: $pid" "W"
fi
